
package com.x52im.rbchat.logic.chat_root.targetchoose;

import java.io.Serializable;

/**
 * 目选选择列表item的数据对象。
 *
 * @author JackJiang
 * @since 10.0
 */
public class TargetEntity implements Serializable {

    /**  专用于群成员选择时，实现"@所有人"选项的item类型 */
    // TODO: 目前 TargetSource.groupMember 暂时是专用于"@"功能时选择被"@"的成员时，暂时为了简化代码，
    //       "@所有人"这个选项只能在 TargetChooseActivity 另用代码写死，暂时就不考虑"@"功能之外使用了，特此说明！
    public final static int TARGET_CHAT_TYPE_FOR_AT_ALL = 991;

    /** 目标id（可能是uid、群id） */
    private String targetId;
    /** 目标名（可能是昵称、群名称）*/
    private String targetName;
    /** 目标其它信息 */
    private String targetOtherInfo;
    /**
     * 目标的聊天类型
     * @see com.x52im.rainbowchat.im.dto.ChatType */
    private int targetChatType = -1;

    /**
     * 本字段仅用于好友数据时，存放好友的最新头像文件名，用于提升图片缓存准确性和性能之用，别无它用。
     */
    private transient String userAvatarFileName;

    /**
     * 用于列表中ui显示时保存是否被选中状态。
     */
    private transient boolean selected = false;

    public String getTargetId() {
        return targetId;
    }

    public void setTargetId(String targetId) {
        this.targetId = targetId;
    }

    public String getTargetName() {
        return targetName;
    }

    public void setTargetName(String targetName) {
        this.targetName = targetName;
    }

    public String getTargetOtherInfo() {
        return targetOtherInfo;
    }

    public void setTargetOtherInfo(String targetOtherInfo) {
        this.targetOtherInfo = targetOtherInfo;
    }

    public String getUserAvatarFileName() {
        return userAvatarFileName;
    }

    public void setUserAvatarFileName(String userAvatarFileName) {
        this.userAvatarFileName = userAvatarFileName;
    }

    public int getTargetChatType() {
        return targetChatType;
    }

    public void setTargetChatType(int type) {
        this.targetChatType = type;
    }

    public boolean isSelected() {
        return this.selected;
    }

    public void setSelected(boolean selected) {
        this.selected = selected;
    }
}